package com.sudo.boot.service.sys;

import com.mybatisflex.core.paginate.Page;
import com.mybatisflex.core.service.IService;
import com.sudo.boot.mapper.sys.entity.SysRole;
import com.sudo.boot.mapper.sys.model.bo.*;
import com.sudo.boot.mapper.sys.model.vo.SysRolePageVo;
import com.sudo.boot.mapper.sys.model.vo.SysRoleSimpleVo;
import com.sudo.boot.mapper.sys.model.vo.SysRoleVo;
import com.sudo.boot.service.common.BaseService;

import java.io.Serializable;
import java.util.List;

/**
 * 系统角色  服务层。
 *
 * @author admins
 * @since 2023-10-13
 */
public interface SysRoleService extends IService<SysRole>, BaseService {

    void edit(SysRoleBoEdit bo);

    List<SysRoleSimpleVo> listSimple();

    List<SysRole> listRole(List<String> roleCodeList);

    Page<SysRolePageVo> page(SysRoleBoPageQuery bo);

    void deleteById(Serializable id);

    SysRoleVo detail(Serializable id);

    void add(SysRoleBoAdd bo);

    void status(SysRoleBoStatus bo);

    void permission(SysRoleBoMenu bo);

    void unbindUser(SysRoleBoUnbindUser bo);
}
